Analysis of stimulation experiments.

library(Seurat)
library(dplyr)
library(ggplot2)
library(scClustViz)
library(SeuratWrappers)
library(scCustomize)
library(reshape2)
library(viridis)

Load integrated object. This object has been integrated with CCA, because there was lots of batch effect between the 0hr tissue and the other two experiments (which merged quite well).

load("~/Dropbox/Zoe/scf_version/analysis/healthy_sc/seurat_objects/no_dropletQC/3391/integrated_3391_stimulation_pmaio_unstim_downsampled_cca_kanchor5_scClustViz.RData")
# Set identity
Idents(scSeurat) <- "integrated_snn_res.0.4"

Check out the UMAP of clusters, original identities, and refined SCINA labels.

DimPlot(scSeurat, label = TRUE)

DimPlot(scSeurat, group.by = "tissue_type", label = FALSE)

DimPlot(scSeurat, group.by = "scina_labels", label = TRUE) & NoLegend()

pdf(file = './figures/stimulation/downsampled_tissue_type_UMAP.pdf',
    height = 5, width = 7)
DimPlot(scSeurat, group.by = "tissue_type") +
  ggtitle(NULL)
dev.off()
null device 
          1 

Create UMAP of general cell-type labels

plot <- DimPlot(scSeurat, group.by = "general_cell_labels_clusts", label = TRUE, repel = TRUE) +
  labs(title = NULL) & NoLegend()
plot
pdf("./figures/stimulation/downsampled_general_cell_type_UMAP.pdf",
    height = 5, width = 7)
plot
dev.off()
png 
  2 

Look at tissue-type per cluster on a proportional level:

plot + coord_flip()
pdf(file = './figures/stimulation/downsampled_tissue_type_barplot.pdf',
    height = 5, width = 7)
plot + coord_flip()
dev.off()
png 
  2 

Calculate all DE genes

all.markers <- FindAllMarkers(scSeurat,
                              only.pos = TRUE,
                              min.pct = 0.25, 
                              logfc.threshold = 0.25,
                              recorrect_umi = FALSE)
Calculating cluster 0

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~05s          
  |++                                                | 2 % ~05s          
  |++                                                | 3 % ~05s          
  |+++                                               | 4 % ~05s          
  |+++                                               | 5 % ~05s          
  |++++                                              | 6 % ~05s          
  |++++                                              | 7 % ~05s          
  |+++++                                             | 8 % ~05s          
  |+++++                                             | 9 % ~05s          
  |++++++                                            | 11% ~05s          
  |++++++                                            | 12% ~04s          
  |+++++++                                           | 13% ~04s          
  |+++++++                                           | 14% ~04s          
  |++++++++                                          | 15% ~04s          
  |++++++++                                          | 16% ~04s          
  |+++++++++                                         | 17% ~04s          
  |+++++++++                                         | 18% ~04s          
  |++++++++++                                        | 19% ~04s          
  |++++++++++                                        | 20% ~04s          
  |+++++++++++                                       | 21% ~04s          
  |++++++++++++                                      | 22% ~04s          
  |++++++++++++                                      | 23% ~04s          
  |+++++++++++++                                     | 24% ~04s          
  |+++++++++++++                                     | 25% ~04s          
  |++++++++++++++                                    | 26% ~04s          
  |++++++++++++++                                    | 27% ~04s          
  |+++++++++++++++                                   | 28% ~04s          
  |+++++++++++++++                                   | 29% ~04s          
  |++++++++++++++++                                  | 31% ~04s          
  |++++++++++++++++                                  | 32% ~04s          
  |+++++++++++++++++                                 | 33% ~03s          
  |+++++++++++++++++                                 | 34% ~03s          
  |++++++++++++++++++                                | 35% ~03s          
  |++++++++++++++++++                                | 36% ~03s          
  |+++++++++++++++++++                               | 37% ~03s          
  |+++++++++++++++++++                               | 38% ~03s          
  |++++++++++++++++++++                              | 39% ~03s          
  |++++++++++++++++++++                              | 40% ~03s          
  |+++++++++++++++++++++                             | 41% ~03s          
  |++++++++++++++++++++++                            | 42% ~03s          
  |++++++++++++++++++++++                            | 43% ~03s          
  |+++++++++++++++++++++++                           | 44% ~03s          
  |+++++++++++++++++++++++                           | 45% ~03s          
  |++++++++++++++++++++++++                          | 46% ~03s          
  |++++++++++++++++++++++++                          | 47% ~03s          
  |+++++++++++++++++++++++++                         | 48% ~03s          
  |+++++++++++++++++++++++++                         | 49% ~03s          
  |++++++++++++++++++++++++++                        | 51% ~03s          
  |++++++++++++++++++++++++++                        | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |+++++++++++++++++++++++++++                       | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |++++++++++++++++++++++++++++                      | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |+++++++++++++++++++++++++++++                     | 58% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |++++++++++++++++++++++++++++++                    | 60% ~02s          
  |+++++++++++++++++++++++++++++++                   | 61% ~02s          
  |++++++++++++++++++++++++++++++++                  | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 63% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~02s          
  |++++++++++++++++++++++++++++++++++                | 66% ~02s          
  |++++++++++++++++++++++++++++++++++                | 67% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=05s  
Calculating cluster 1

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~06s          
  |++                                                | 2 % ~06s          
  |++                                                | 4 % ~06s          
  |+++                                               | 5 % ~06s          
  |+++                                               | 6 % ~06s          
  |++++                                              | 7 % ~06s          
  |+++++                                             | 8 % ~06s          
  |+++++                                             | 10% ~06s          
  |++++++                                            | 11% ~06s          
  |++++++                                            | 12% ~06s          
  |+++++++                                           | 13% ~06s          
  |++++++++                                          | 14% ~06s          
  |++++++++                                          | 15% ~05s          
  |+++++++++                                         | 17% ~05s          
  |+++++++++                                         | 18% ~05s          
  |++++++++++                                        | 19% ~05s          
  |+++++++++++                                       | 20% ~05s          
  |+++++++++++                                       | 21% ~05s          
  |++++++++++++                                      | 23% ~05s          
  |++++++++++++                                      | 24% ~05s          
  |+++++++++++++                                     | 25% ~05s          
  |++++++++++++++                                    | 26% ~05s          
  |++++++++++++++                                    | 27% ~05s          
  |+++++++++++++++                                   | 29% ~05s          
  |+++++++++++++++                                   | 30% ~05s          
  |++++++++++++++++                                  | 31% ~04s          
  |+++++++++++++++++                                 | 32% ~04s          
  |+++++++++++++++++                                 | 33% ~04s          
  |++++++++++++++++++                                | 35% ~04s          
  |++++++++++++++++++                                | 36% ~04s          
  |+++++++++++++++++++                               | 37% ~04s          
  |++++++++++++++++++++                              | 38% ~04s          
  |++++++++++++++++++++                              | 39% ~04s          
  |+++++++++++++++++++++                             | 40% ~04s          
  |+++++++++++++++++++++                             | 42% ~04s          
  |++++++++++++++++++++++                            | 43% ~04s          
  |+++++++++++++++++++++++                           | 44% ~04s          
  |+++++++++++++++++++++++                           | 45% ~04s          
  |++++++++++++++++++++++++                          | 46% ~03s          
  |++++++++++++++++++++++++                          | 48% ~03s          
  |+++++++++++++++++++++++++                         | 49% ~03s          
  |+++++++++++++++++++++++++                         | 50% ~03s          
  |++++++++++++++++++++++++++                        | 51% ~03s          
  |+++++++++++++++++++++++++++                       | 52% ~03s          
  |+++++++++++++++++++++++++++                       | 54% ~03s          
  |++++++++++++++++++++++++++++                      | 55% ~03s          
  |++++++++++++++++++++++++++++                      | 56% ~03s          
  |+++++++++++++++++++++++++++++                     | 57% ~03s          
  |++++++++++++++++++++++++++++++                    | 58% ~03s          
  |++++++++++++++++++++++++++++++                    | 60% ~03s          
  |+++++++++++++++++++++++++++++++                   | 61% ~03s          
  |+++++++++++++++++++++++++++++++                   | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 63% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~02s          
  |++++++++++++++++++++++++++++++++++                | 67% ~02s          
  |++++++++++++++++++++++++++++++++++                | 68% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~02s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=06s  
Calculating cluster 2

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~03s          
  |++                                                | 2 % ~03s          
  |++                                                | 4 % ~03s          
  |+++                                               | 5 % ~03s          
  |+++                                               | 6 % ~03s          
  |++++                                              | 7 % ~03s          
  |+++++                                             | 8 % ~03s          
  |+++++                                             | 10% ~03s          
  |++++++                                            | 11% ~03s          
  |++++++                                            | 12% ~03s          
  |+++++++                                           | 13% ~03s          
  |++++++++                                          | 14% ~03s          
  |++++++++                                          | 15% ~03s          
  |+++++++++                                         | 17% ~03s          
  |+++++++++                                         | 18% ~03s          
  |++++++++++                                        | 19% ~03s          
  |+++++++++++                                       | 20% ~02s          
  |+++++++++++                                       | 21% ~02s          
  |++++++++++++                                      | 23% ~02s          
  |++++++++++++                                      | 24% ~02s          
  |+++++++++++++                                     | 25% ~02s          
  |++++++++++++++                                    | 26% ~02s          
  |++++++++++++++                                    | 27% ~02s          
  |+++++++++++++++                                   | 29% ~02s          
  |+++++++++++++++                                   | 30% ~02s          
  |++++++++++++++++                                  | 31% ~02s          
  |+++++++++++++++++                                 | 32% ~02s          
  |+++++++++++++++++                                 | 33% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |++++++++++++++++++                                | 36% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |+++++++++++++++++++++                             | 40% ~02s          
  |+++++++++++++++++++++                             | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |+++++++++++++++++++++++                           | 44% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |++++++++++++++++++++++++                          | 46% ~02s          
  |++++++++++++++++++++++++                          | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |+++++++++++++++++++++++++                         | 50% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |+++++++++++++++++++++++++++                       | 52% ~01s          
  |+++++++++++++++++++++++++++                       | 54% ~01s          
  |++++++++++++++++++++++++++++                      | 55% ~01s          
  |++++++++++++++++++++++++++++                      | 56% ~01s          
  |+++++++++++++++++++++++++++++                     | 57% ~01s          
  |++++++++++++++++++++++++++++++                    | 58% ~01s          
  |++++++++++++++++++++++++++++++                    | 60% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |+++++++++++++++++++++++++++++++                   | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |++++++++++++++++++++++++++++++++++                | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03s  
Calculating cluster 3

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~07s          
  |++                                                | 2 % ~07s          
  |++                                                | 3 % ~06s          
  |+++                                               | 5 % ~06s          
  |+++                                               | 6 % ~06s          
  |++++                                              | 7 % ~06s          
  |+++++                                             | 8 % ~06s          
  |+++++                                             | 9 % ~06s          
  |++++++                                            | 10% ~06s          
  |++++++                                            | 11% ~06s          
  |+++++++                                           | 13% ~06s          
  |+++++++                                           | 14% ~06s          
  |++++++++                                          | 15% ~06s          
  |+++++++++                                         | 16% ~06s          
  |+++++++++                                         | 17% ~06s          
  |++++++++++                                        | 18% ~05s          
  |++++++++++                                        | 20% ~05s          
  |+++++++++++                                       | 21% ~05s          
  |+++++++++++                                       | 22% ~05s          
  |++++++++++++                                      | 23% ~05s          
  |+++++++++++++                                     | 24% ~05s          
  |+++++++++++++                                     | 25% ~05s          
  |++++++++++++++                                    | 26% ~05s          
  |++++++++++++++                                    | 28% ~05s          
  |+++++++++++++++                                   | 29% ~05s          
  |+++++++++++++++                                   | 30% ~05s          
  |++++++++++++++++                                  | 31% ~05s          
  |+++++++++++++++++                                 | 32% ~05s          
  |+++++++++++++++++                                 | 33% ~04s          
  |++++++++++++++++++                                | 34% ~04s          
  |++++++++++++++++++                                | 36% ~04s          
  |+++++++++++++++++++                               | 37% ~04s          
  |+++++++++++++++++++                               | 38% ~04s          
  |++++++++++++++++++++                              | 39% ~04s          
  |+++++++++++++++++++++                             | 40% ~04s          
  |+++++++++++++++++++++                             | 41% ~04s          
  |++++++++++++++++++++++                            | 43% ~04s          
  |++++++++++++++++++++++                            | 44% ~04s          
  |+++++++++++++++++++++++                           | 45% ~04s          
  |+++++++++++++++++++++++                           | 46% ~04s          
  |++++++++++++++++++++++++                          | 47% ~04s          
  |+++++++++++++++++++++++++                         | 48% ~03s          
  |+++++++++++++++++++++++++                         | 49% ~03s          
  |++++++++++++++++++++++++++                        | 51% ~03s          
  |++++++++++++++++++++++++++                        | 52% ~03s          
  |+++++++++++++++++++++++++++                       | 53% ~03s          
  |++++++++++++++++++++++++++++                      | 54% ~03s          
  |++++++++++++++++++++++++++++                      | 55% ~03s          
  |+++++++++++++++++++++++++++++                     | 56% ~03s          
  |+++++++++++++++++++++++++++++                     | 57% ~03s          
  |++++++++++++++++++++++++++++++                    | 59% ~03s          
  |++++++++++++++++++++++++++++++                    | 60% ~03s          
  |+++++++++++++++++++++++++++++++                   | 61% ~03s          
  |++++++++++++++++++++++++++++++++                  | 62% ~03s          
  |++++++++++++++++++++++++++++++++                  | 63% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~02s          
  |++++++++++++++++++++++++++++++++++                | 67% ~02s          
  |++++++++++++++++++++++++++++++++++                | 68% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~02s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~02s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=07s  
Calculating cluster 4

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~04s          
  |++                                                | 3 % ~04s          
  |++                                                | 4 % ~04s          
  |+++                                               | 5 % ~03s          
  |++++                                              | 7 % ~03s          
  |++++                                              | 8 % ~03s          
  |+++++                                             | 9 % ~03s          
  |++++++                                            | 11% ~03s          
  |++++++                                            | 12% ~03s          
  |+++++++                                           | 13% ~03s          
  |++++++++                                          | 14% ~03s          
  |++++++++                                          | 16% ~03s          
  |+++++++++                                         | 17% ~03s          
  |++++++++++                                        | 18% ~03s          
  |++++++++++                                        | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |++++++++++++                                      | 22% ~03s          
  |++++++++++++                                      | 24% ~03s          
  |+++++++++++++                                     | 25% ~03s          
  |++++++++++++++                                    | 26% ~03s          
  |++++++++++++++                                    | 28% ~03s          
  |+++++++++++++++                                   | 29% ~03s          
  |++++++++++++++++                                  | 30% ~03s          
  |++++++++++++++++                                  | 32% ~03s          
  |+++++++++++++++++                                 | 33% ~02s          
  |++++++++++++++++++                                | 34% ~02s          
  |++++++++++++++++++                                | 36% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |++++++++++++++++++++++                            | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |++++++++++++++++++++++++                          | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |+++++++++++++++++++++++++                         | 50% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |+++++++++++++++++++++++++++                       | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |+++++++++++++++++++++++++++++                     | 58% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |+++++++++++++++++++++++++++++++                   | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=04s  
Calculating cluster 5

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~09s          
  |++                                                | 2 % ~09s          
  |++                                                | 3 % ~09s          
  |+++                                               | 4 % ~09s          
  |+++                                               | 5 % ~09s          
  |++++                                              | 7 % ~09s          
  |++++                                              | 8 % ~09s          
  |+++++                                             | 9 % ~09s          
  |+++++                                             | 10% ~09s          
  |++++++                                            | 11% ~09s          
  |+++++++                                           | 12% ~09s          
  |+++++++                                           | 13% ~09s          
  |++++++++                                          | 14% ~08s          
  |++++++++                                          | 15% ~08s          
  |+++++++++                                         | 16% ~08s          
  |+++++++++                                         | 18% ~08s          
  |++++++++++                                        | 19% ~08s          
  |++++++++++                                        | 20% ~08s          
  |+++++++++++                                       | 21% ~08s          
  |+++++++++++                                       | 22% ~08s          
  |++++++++++++                                      | 23% ~08s          
  |+++++++++++++                                     | 24% ~07s          
  |+++++++++++++                                     | 25% ~07s          
  |++++++++++++++                                    | 26% ~07s          
  |++++++++++++++                                    | 27% ~07s          
  |+++++++++++++++                                   | 29% ~07s          
  |+++++++++++++++                                   | 30% ~07s          
  |++++++++++++++++                                  | 31% ~07s          
  |++++++++++++++++                                  | 32% ~07s          
  |+++++++++++++++++                                 | 33% ~07s          
  |++++++++++++++++++                                | 34% ~06s          
  |++++++++++++++++++                                | 35% ~06s          
  |+++++++++++++++++++                               | 36% ~06s          
  |+++++++++++++++++++                               | 37% ~06s          
  |++++++++++++++++++++                              | 38% ~06s          
  |++++++++++++++++++++                              | 40% ~06s          
  |+++++++++++++++++++++                             | 41% ~06s          
  |+++++++++++++++++++++                             | 42% ~06s          
  |++++++++++++++++++++++                            | 43% ~06s          
  |++++++++++++++++++++++                            | 44% ~06s          
  |+++++++++++++++++++++++                           | 45% ~05s          
  |++++++++++++++++++++++++                          | 46% ~05s          
  |++++++++++++++++++++++++                          | 47% ~05s          
  |+++++++++++++++++++++++++                         | 48% ~05s          
  |+++++++++++++++++++++++++                         | 49% ~05s          
  |++++++++++++++++++++++++++                        | 51% ~05s          
  |++++++++++++++++++++++++++                        | 52% ~05s          
  |+++++++++++++++++++++++++++                       | 53% ~05s          
  |+++++++++++++++++++++++++++                       | 54% ~05s          
  |++++++++++++++++++++++++++++                      | 55% ~04s          
  |+++++++++++++++++++++++++++++                     | 56% ~04s          
  |+++++++++++++++++++++++++++++                     | 57% ~04s          
  |++++++++++++++++++++++++++++++                    | 58% ~04s          
  |++++++++++++++++++++++++++++++                    | 59% ~04s          
  |+++++++++++++++++++++++++++++++                   | 60% ~04s          
  |+++++++++++++++++++++++++++++++                   | 62% ~04s          
  |++++++++++++++++++++++++++++++++                  | 63% ~04s          
  |++++++++++++++++++++++++++++++++                  | 64% ~04s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~03s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~03s          
  |++++++++++++++++++++++++++++++++++                | 67% ~03s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~03s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~03s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~03s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~03s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~03s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~03s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~03s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=10s  
Calculating cluster 6

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~07s          
  |++                                                | 2 % ~07s          
  |++                                                | 4 % ~06s          
  |+++                                               | 5 % ~06s          
  |+++                                               | 6 % ~06s          
  |++++                                              | 7 % ~06s          
  |+++++                                             | 8 % ~06s          
  |+++++                                             | 9 % ~06s          
  |++++++                                            | 11% ~06s          
  |++++++                                            | 12% ~06s          
  |+++++++                                           | 13% ~06s          
  |++++++++                                          | 14% ~06s          
  |++++++++                                          | 15% ~06s          
  |+++++++++                                         | 16% ~05s          
  |+++++++++                                         | 18% ~05s          
  |++++++++++                                        | 19% ~05s          
  |++++++++++                                        | 20% ~05s          
  |+++++++++++                                       | 21% ~05s          
  |++++++++++++                                      | 22% ~05s          
  |++++++++++++                                      | 24% ~05s          
  |+++++++++++++                                     | 25% ~05s          
  |+++++++++++++                                     | 26% ~05s          
  |++++++++++++++                                    | 27% ~05s          
  |+++++++++++++++                                   | 28% ~05s          
  |+++++++++++++++                                   | 29% ~05s          
  |++++++++++++++++                                  | 31% ~05s          
  |++++++++++++++++                                  | 32% ~05s          
  |+++++++++++++++++                                 | 33% ~04s          
  |++++++++++++++++++                                | 34% ~04s          
  |++++++++++++++++++                                | 35% ~04s          
  |+++++++++++++++++++                               | 36% ~04s          
  |+++++++++++++++++++                               | 38% ~04s          
  |++++++++++++++++++++                              | 39% ~04s          
  |++++++++++++++++++++                              | 40% ~04s          
  |+++++++++++++++++++++                             | 41% ~04s          
  |++++++++++++++++++++++                            | 42% ~04s          
  |++++++++++++++++++++++                            | 44% ~04s          
  |+++++++++++++++++++++++                           | 45% ~04s          
  |+++++++++++++++++++++++                           | 46% ~04s          
  |++++++++++++++++++++++++                          | 47% ~04s          
  |+++++++++++++++++++++++++                         | 48% ~03s          
  |+++++++++++++++++++++++++                         | 49% ~03s          
  |++++++++++++++++++++++++++                        | 51% ~03s          
  |++++++++++++++++++++++++++                        | 52% ~03s          
  |+++++++++++++++++++++++++++                       | 53% ~03s          
  |++++++++++++++++++++++++++++                      | 54% ~03s          
  |++++++++++++++++++++++++++++                      | 55% ~03s          
  |+++++++++++++++++++++++++++++                     | 56% ~03s          
  |+++++++++++++++++++++++++++++                     | 58% ~03s          
  |++++++++++++++++++++++++++++++                    | 59% ~03s          
  |++++++++++++++++++++++++++++++                    | 60% ~03s          
  |+++++++++++++++++++++++++++++++                   | 61% ~03s          
  |++++++++++++++++++++++++++++++++                  | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 64% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~02s          
  |++++++++++++++++++++++++++++++++++                | 67% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~02s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~02s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=07s  
Calculating cluster 7

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~05s          
  |++                                                | 2 % ~05s          
  |++                                                | 4 % ~05s          
  |+++                                               | 5 % ~05s          
  |++++                                              | 6 % ~05s          
  |++++                                              | 7 % ~05s          
  |+++++                                             | 9 % ~05s          
  |+++++                                             | 10% ~05s          
  |++++++                                            | 11% ~05s          
  |+++++++                                           | 12% ~05s          
  |+++++++                                           | 13% ~05s          
  |++++++++                                          | 15% ~05s          
  |++++++++                                          | 16% ~04s          
  |+++++++++                                         | 17% ~04s          
  |++++++++++                                        | 18% ~04s          
  |++++++++++                                        | 20% ~04s          
  |+++++++++++                                       | 21% ~04s          
  |+++++++++++                                       | 22% ~04s          
  |++++++++++++                                      | 23% ~04s          
  |+++++++++++++                                     | 24% ~04s          
  |+++++++++++++                                     | 26% ~04s          
  |++++++++++++++                                    | 27% ~04s          
  |+++++++++++++++                                   | 28% ~04s          
  |+++++++++++++++                                   | 29% ~04s          
  |++++++++++++++++                                  | 30% ~04s          
  |++++++++++++++++                                  | 32% ~04s          
  |+++++++++++++++++                                 | 33% ~04s          
  |++++++++++++++++++                                | 34% ~04s          
  |++++++++++++++++++                                | 35% ~04s          
  |+++++++++++++++++++                               | 37% ~03s          
  |+++++++++++++++++++                               | 38% ~03s          
  |++++++++++++++++++++                              | 39% ~03s          
  |+++++++++++++++++++++                             | 40% ~03s          
  |+++++++++++++++++++++                             | 41% ~03s          
  |++++++++++++++++++++++                            | 43% ~03s          
  |++++++++++++++++++++++                            | 44% ~03s          
  |+++++++++++++++++++++++                           | 45% ~03s          
  |++++++++++++++++++++++++                          | 46% ~03s          
  |++++++++++++++++++++++++                          | 48% ~03s          
  |+++++++++++++++++++++++++                         | 49% ~03s          
  |+++++++++++++++++++++++++                         | 50% ~03s          
  |++++++++++++++++++++++++++                        | 51% ~03s          
  |+++++++++++++++++++++++++++                       | 52% ~03s          
  |+++++++++++++++++++++++++++                       | 54% ~03s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |+++++++++++++++++++++++++++++                     | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |++++++++++++++++++++++++++++++                    | 60% ~02s          
  |+++++++++++++++++++++++++++++++                   | 61% ~02s          
  |++++++++++++++++++++++++++++++++                  | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 63% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~02s          
  |++++++++++++++++++++++++++++++++++                | 67% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=05s  
Calculating cluster 8

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~04s          
  |++                                                | 2 % ~04s          
  |++                                                | 3 % ~04s          
  |+++                                               | 4 % ~04s          
  |+++                                               | 5 % ~04s          
  |++++                                              | 6 % ~04s          
  |++++                                              | 7 % ~04s          
  |+++++                                             | 8 % ~04s          
  |+++++                                             | 9 % ~04s          
  |++++++                                            | 10% ~04s          
  |++++++                                            | 11% ~04s          
  |+++++++                                           | 12% ~04s          
  |+++++++                                           | 13% ~04s          
  |++++++++                                          | 14% ~04s          
  |++++++++                                          | 15% ~04s          
  |+++++++++                                         | 16% ~04s          
  |+++++++++                                         | 17% ~03s          
  |++++++++++                                        | 18% ~03s          
  |++++++++++                                        | 19% ~03s          
  |+++++++++++                                       | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |++++++++++++                                      | 22% ~03s          
  |++++++++++++                                      | 23% ~03s          
  |+++++++++++++                                     | 24% ~03s          
  |+++++++++++++                                     | 26% ~03s          
  |++++++++++++++                                    | 27% ~03s          
  |++++++++++++++                                    | 28% ~03s          
  |+++++++++++++++                                   | 29% ~03s          
  |+++++++++++++++                                   | 30% ~03s          
  |++++++++++++++++                                  | 31% ~03s          
  |++++++++++++++++                                  | 32% ~03s          
  |+++++++++++++++++                                 | 33% ~03s          
  |+++++++++++++++++                                 | 34% ~03s          
  |++++++++++++++++++                                | 35% ~03s          
  |++++++++++++++++++                                | 36% ~03s          
  |+++++++++++++++++++                               | 37% ~03s          
  |+++++++++++++++++++                               | 38% ~03s          
  |++++++++++++++++++++                              | 39% ~02s          
  |++++++++++++++++++++                              | 40% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |+++++++++++++++++++++                             | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |++++++++++++++++++++++                            | 44% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |+++++++++++++++++++++++                           | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |++++++++++++++++++++++++                          | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |+++++++++++++++++++++++++                         | 50% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |+++++++++++++++++++++++++++                       | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |++++++++++++++++++++++++++++                      | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |+++++++++++++++++++++++++++++                     | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |++++++++++++++++++++++++++++++                    | 58% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |+++++++++++++++++++++++++++++++                   | 60% ~02s          
  |+++++++++++++++++++++++++++++++                   | 61% ~02s          
  |++++++++++++++++++++++++++++++++                  | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |++++++++++++++++++++++++++++++++++                | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=04s  
Calculating cluster 9

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~05s          
  |++                                                | 2 % ~05s          
  |++                                                | 3 % ~05s          
  |+++                                               | 5 % ~05s          
  |+++                                               | 6 % ~05s          
  |++++                                              | 7 % ~05s          
  |+++++                                             | 8 % ~05s          
  |+++++                                             | 9 % ~05s          
  |++++++                                            | 10% ~05s          
  |++++++                                            | 11% ~05s          
  |+++++++                                           | 13% ~05s          
  |+++++++                                           | 14% ~04s          
  |++++++++                                          | 15% ~04s          
  |+++++++++                                         | 16% ~04s          
  |+++++++++                                         | 17% ~04s          
  |++++++++++                                        | 18% ~04s          
  |++++++++++                                        | 20% ~04s          
  |+++++++++++                                       | 21% ~04s          
  |+++++++++++                                       | 22% ~04s          
  |++++++++++++                                      | 23% ~04s          
  |+++++++++++++                                     | 24% ~04s          
  |+++++++++++++                                     | 25% ~04s          
  |++++++++++++++                                    | 26% ~04s          
  |++++++++++++++                                    | 28% ~04s          
  |+++++++++++++++                                   | 29% ~04s          
  |+++++++++++++++                                   | 30% ~04s          
  |++++++++++++++++                                  | 31% ~04s          
  |+++++++++++++++++                                 | 32% ~04s          
  |+++++++++++++++++                                 | 33% ~03s          
  |++++++++++++++++++                                | 34% ~03s          
  |++++++++++++++++++                                | 36% ~03s          
  |+++++++++++++++++++                               | 37% ~03s          
  |+++++++++++++++++++                               | 38% ~03s          
  |++++++++++++++++++++                              | 39% ~03s          
  |+++++++++++++++++++++                             | 40% ~03s          
  |+++++++++++++++++++++                             | 41% ~03s          
  |++++++++++++++++++++++                            | 43% ~03s          
  |++++++++++++++++++++++                            | 44% ~03s          
  |+++++++++++++++++++++++                           | 45% ~03s          
  |+++++++++++++++++++++++                           | 46% ~03s          
  |++++++++++++++++++++++++                          | 47% ~03s          
  |+++++++++++++++++++++++++                         | 48% ~03s          
  |+++++++++++++++++++++++++                         | 49% ~03s          
  |++++++++++++++++++++++++++                        | 51% ~03s          
  |++++++++++++++++++++++++++                        | 52% ~03s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |++++++++++++++++++++++++++++                      | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |+++++++++++++++++++++++++++++                     | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |++++++++++++++++++++++++++++++                    | 60% ~02s          
  |+++++++++++++++++++++++++++++++                   | 61% ~02s          
  |++++++++++++++++++++++++++++++++                  | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 63% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~02s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~02s          
  |++++++++++++++++++++++++++++++++++                | 67% ~02s          
  |++++++++++++++++++++++++++++++++++                | 68% ~02s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~02s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~02s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=05s  
Calculating cluster 10

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~03s          
  |++                                                | 3 % ~03s          
  |+++                                               | 4 % ~02s          
  |+++                                               | 6 % ~02s          
  |++++                                              | 7 % ~02s          
  |+++++                                             | 8 % ~02s          
  |+++++                                             | 10% ~02s          
  |++++++                                            | 11% ~02s          
  |+++++++                                           | 13% ~02s          
  |++++++++                                          | 14% ~02s          
  |++++++++                                          | 15% ~02s          
  |+++++++++                                         | 17% ~02s          
  |++++++++++                                        | 18% ~02s          
  |++++++++++                                        | 20% ~02s          
  |+++++++++++                                       | 21% ~02s          
  |++++++++++++                                      | 23% ~02s          
  |++++++++++++                                      | 24% ~02s          
  |+++++++++++++                                     | 25% ~02s          
  |++++++++++++++                                    | 27% ~02s          
  |+++++++++++++++                                   | 28% ~02s          
  |+++++++++++++++                                   | 30% ~02s          
  |++++++++++++++++                                  | 31% ~02s          
  |+++++++++++++++++                                 | 32% ~02s          
  |+++++++++++++++++                                 | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |++++++++++++++++++++++                            | 42% ~01s          
  |++++++++++++++++++++++                            | 44% ~01s          
  |+++++++++++++++++++++++                           | 45% ~01s          
  |++++++++++++++++++++++++                          | 46% ~01s          
  |++++++++++++++++++++++++                          | 48% ~01s          
  |+++++++++++++++++++++++++                         | 49% ~01s          
  |++++++++++++++++++++++++++                        | 51% ~01s          
  |+++++++++++++++++++++++++++                       | 52% ~01s          
  |+++++++++++++++++++++++++++                       | 54% ~01s          
  |++++++++++++++++++++++++++++                      | 55% ~01s          
  |+++++++++++++++++++++++++++++                     | 56% ~01s          
  |+++++++++++++++++++++++++++++                     | 58% ~01s          
  |++++++++++++++++++++++++++++++                    | 59% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |+++++++++++++++++++++++++++++++                   | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |++++++++++++++++++++++++++++++++++                | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03s  
Calculating cluster 11

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~04s          
  |++                                                | 2 % ~04s          
  |++                                                | 4 % ~04s          
  |+++                                               | 5 % ~04s          
  |++++                                              | 6 % ~04s          
  |++++                                              | 7 % ~04s          
  |+++++                                             | 9 % ~04s          
  |+++++                                             | 10% ~04s          
  |++++++                                            | 11% ~04s          
  |+++++++                                           | 12% ~03s          
  |+++++++                                           | 14% ~03s          
  |++++++++                                          | 15% ~03s          
  |+++++++++                                         | 16% ~03s          
  |+++++++++                                         | 17% ~03s          
  |++++++++++                                        | 19% ~03s          
  |++++++++++                                        | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |++++++++++++                                      | 22% ~03s          
  |++++++++++++                                      | 23% ~03s          
  |+++++++++++++                                     | 25% ~03s          
  |+++++++++++++                                     | 26% ~03s          
  |++++++++++++++                                    | 27% ~03s          
  |+++++++++++++++                                   | 28% ~03s          
  |+++++++++++++++                                   | 30% ~03s          
  |++++++++++++++++                                  | 31% ~03s          
  |+++++++++++++++++                                 | 32% ~03s          
  |+++++++++++++++++                                 | 33% ~03s          
  |++++++++++++++++++                                | 35% ~03s          
  |++++++++++++++++++                                | 36% ~03s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 40% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |+++++++++++++++++++++                             | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |+++++++++++++++++++++++                           | 44% ~02s          
  |+++++++++++++++++++++++                           | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |+++++++++++++++++++++++++                         | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |++++++++++++++++++++++++++                        | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |++++++++++++++++++++++++++++                      | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |++++++++++++++++++++++++++++++                    | 58% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |+++++++++++++++++++++++++++++++                   | 60% ~02s          
  |+++++++++++++++++++++++++++++++                   | 62% ~02s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |++++++++++++++++++++++++++++++++++                | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=04s  
Calculating cluster 12

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~10s          
  |++                                                | 2 % ~10s          
  |++                                                | 3 % ~09s          
  |+++                                               | 4 % ~09s          
  |+++                                               | 6 % ~09s          
  |++++                                              | 7 % ~09s          
  |++++                                              | 8 % ~09s          
  |+++++                                             | 9 % ~09s          
  |+++++                                             | 10% ~09s          
  |++++++                                            | 11% ~09s          
  |+++++++                                           | 12% ~09s          
  |+++++++                                           | 13% ~08s          
  |++++++++                                          | 14% ~08s          
  |++++++++                                          | 16% ~08s          
  |+++++++++                                         | 17% ~08s          
  |+++++++++                                         | 18% ~08s          
  |++++++++++                                        | 19% ~08s          
  |++++++++++                                        | 20% ~08s          
  |+++++++++++                                       | 21% ~08s          
  |++++++++++++                                      | 22% ~08s          
  |++++++++++++                                      | 23% ~07s          
  |+++++++++++++                                     | 24% ~07s          
  |+++++++++++++                                     | 26% ~07s          
  |++++++++++++++                                    | 27% ~07s          
  |++++++++++++++                                    | 28% ~07s          
  |+++++++++++++++                                   | 29% ~07s          
  |+++++++++++++++                                   | 30% ~07s          
  |++++++++++++++++                                  | 31% ~07s          
  |+++++++++++++++++                                 | 32% ~07s          
  |+++++++++++++++++                                 | 33% ~07s          
  |++++++++++++++++++                                | 34% ~06s          
  |++++++++++++++++++                                | 36% ~06s          
  |+++++++++++++++++++                               | 37% ~06s          
  |+++++++++++++++++++                               | 38% ~06s          
  |++++++++++++++++++++                              | 39% ~06s          
  |++++++++++++++++++++                              | 40% ~06s          
  |+++++++++++++++++++++                             | 41% ~06s          
  |++++++++++++++++++++++                            | 42% ~06s          
  |++++++++++++++++++++++                            | 43% ~06s          
  |+++++++++++++++++++++++                           | 44% ~05s          
  |+++++++++++++++++++++++                           | 46% ~05s          
  |++++++++++++++++++++++++                          | 47% ~05s          
  |++++++++++++++++++++++++                          | 48% ~05s          
  |+++++++++++++++++++++++++                         | 49% ~05s          
  |+++++++++++++++++++++++++                         | 50% ~05s          
  |++++++++++++++++++++++++++                        | 51% ~05s          
  |+++++++++++++++++++++++++++                       | 52% ~05s          
  |+++++++++++++++++++++++++++                       | 53% ~05s          
  |++++++++++++++++++++++++++++                      | 54% ~04s          
  |++++++++++++++++++++++++++++                      | 56% ~04s          
  |+++++++++++++++++++++++++++++                     | 57% ~04s          
  |+++++++++++++++++++++++++++++                     | 58% ~04s          
  |++++++++++++++++++++++++++++++                    | 59% ~04s          
  |++++++++++++++++++++++++++++++                    | 60% ~04s          
  |+++++++++++++++++++++++++++++++                   | 61% ~04s          
  |++++++++++++++++++++++++++++++++                  | 62% ~04s          
  |++++++++++++++++++++++++++++++++                  | 63% ~04s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~03s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~03s          
  |++++++++++++++++++++++++++++++++++                | 67% ~03s          
  |++++++++++++++++++++++++++++++++++                | 68% ~03s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~03s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~03s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~03s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~03s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~03s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~03s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~02s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~02s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~02s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=10s  
Calculating cluster 13

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~04s          
  |++                                                | 2 % ~04s          
  |++                                                | 3 % ~04s          
  |+++                                               | 4 % ~04s          
  |+++                                               | 5 % ~04s          
  |++++                                              | 6 % ~03s          
  |++++                                              | 7 % ~03s          
  |+++++                                             | 8 % ~03s          
  |+++++                                             | 9 % ~03s          
  |++++++                                            | 10% ~03s          
  |++++++                                            | 11% ~03s          
  |+++++++                                           | 12% ~03s          
  |+++++++                                           | 13% ~03s          
  |++++++++                                          | 14% ~03s          
  |++++++++                                          | 15% ~03s          
  |+++++++++                                         | 16% ~03s          
  |+++++++++                                         | 17% ~03s          
  |++++++++++                                        | 18% ~03s          
  |++++++++++                                        | 19% ~03s          
  |+++++++++++                                       | 20% ~03s          
  |+++++++++++                                       | 21% ~03s          
  |++++++++++++                                      | 22% ~03s          
  |++++++++++++                                      | 23% ~03s          
  |+++++++++++++                                     | 24% ~03s          
  |+++++++++++++                                     | 25% ~03s          
  |++++++++++++++                                    | 26% ~03s          
  |++++++++++++++                                    | 27% ~03s          
  |+++++++++++++++                                   | 28% ~03s          
  |+++++++++++++++                                   | 29% ~03s          
  |++++++++++++++++                                  | 30% ~03s          
  |++++++++++++++++                                  | 31% ~03s          
  |+++++++++++++++++                                 | 32% ~02s          
  |+++++++++++++++++                                 | 33% ~02s          
  |++++++++++++++++++                                | 34% ~02s          
  |++++++++++++++++++                                | 35% ~02s          
  |+++++++++++++++++++                               | 36% ~02s          
  |+++++++++++++++++++                               | 37% ~02s          
  |++++++++++++++++++++                              | 38% ~02s          
  |++++++++++++++++++++                              | 39% ~02s          
  |+++++++++++++++++++++                             | 40% ~02s          
  |+++++++++++++++++++++                             | 41% ~02s          
  |++++++++++++++++++++++                            | 42% ~02s          
  |++++++++++++++++++++++                            | 43% ~02s          
  |+++++++++++++++++++++++                           | 44% ~02s          
  |+++++++++++++++++++++++                           | 45% ~02s          
  |++++++++++++++++++++++++                          | 46% ~02s          
  |++++++++++++++++++++++++                          | 47% ~02s          
  |+++++++++++++++++++++++++                         | 48% ~02s          
  |+++++++++++++++++++++++++                         | 49% ~02s          
  |++++++++++++++++++++++++++                        | 51% ~02s          
  |++++++++++++++++++++++++++                        | 52% ~02s          
  |+++++++++++++++++++++++++++                       | 53% ~02s          
  |+++++++++++++++++++++++++++                       | 54% ~02s          
  |++++++++++++++++++++++++++++                      | 55% ~02s          
  |++++++++++++++++++++++++++++                      | 56% ~02s          
  |+++++++++++++++++++++++++++++                     | 57% ~02s          
  |+++++++++++++++++++++++++++++                     | 58% ~02s          
  |++++++++++++++++++++++++++++++                    | 59% ~02s          
  |++++++++++++++++++++++++++++++                    | 60% ~01s          
  |+++++++++++++++++++++++++++++++                   | 61% ~01s          
  |+++++++++++++++++++++++++++++++                   | 62% ~01s          
  |++++++++++++++++++++++++++++++++                  | 63% ~01s          
  |++++++++++++++++++++++++++++++++                  | 64% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~01s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~01s          
  |++++++++++++++++++++++++++++++++++                | 67% ~01s          
  |++++++++++++++++++++++++++++++++++                | 68% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~01s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~01s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~01s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~01s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~01s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~01s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~01s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~00s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~00s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=04s  
top.markers <- all.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_log2FC)
top.markers
write.table(all.markers,
            file = "./figures/stimulation/downsampled_cluster_markers.tsv",
            sep = "\t",
            quote = FALSE,
            row.names = FALSE)

Calculate DE genes: for each cluster, compare stim VS unstim

for (clust in levels(as.factor(Idents(scSeurat)))) {
  cells_stim <- colnames(scSeurat)[Idents(scSeurat) == clust & scSeurat$tissue_type == "6hrs_PMAIO"]
  cells_unstim <- colnames(scSeurat)[Idents(scSeurat) == clust & scSeurat$tissue_type == "6hrs_unstim"]
  markers <- RunPresto(scSeurat,
                       ident.1 = cells_stim,
                       ident.2 = cells_unstim,
                       only.pos = FALSE,
                       min.pct = 0.25,
                       logfc.threshold = 0.25,
                       recorrect_umi = FALSE)
  write.table(markers,
              file = paste("./figures/stimulation/downsampled_markers_cluster", 
                           clust ,"_stim_vs_unstim.tsv", sep = ""),
              sep = "\t",
              quote = FALSE,
              row.names = TRUE)
}

Look for T-cell signatures.

FeaturePlot(scSeurat, features = c("CD3E", "NKG7"))

FeaturePlot(scSeurat, features = c("LEF1", "XCL1;XCL2"))

FeaturePlot(scSeurat, features = c("TOX", "CD8A"))

FeaturePlot(scSeurat, features = c("CCR7"))

Look for macrophage signatures:

FeaturePlot(scSeurat, features = c("LGALS1", "TYROBP"))

FeaturePlot(scSeurat, features = c("MARCO", "C1QC"))

FeaturePlot(scSeurat, features = c("LYZ-1", "S100A8"))

FeaturePlot(scSeurat, features = c("DEFA6;DEFA4;DEFA5", "CTSS"))

FeaturePlot(scSeurat, features = c("FLT3", "S100A12"))

Look for B and plasma cell signatures

FeaturePlot(scSeurat, features = c("CD79B", "JCHAIN"))

Cluster 12 is the only cluster that is obviously dominated by the unstimulated experiments. What cells are these? Looks like they are hepatocytes. A lot of the markers are periportal, but all hepatocytes are in this cluster.

# Isolate DE genes
clust11 <- sCVdata_list$res.0.4@DEvsRest$`12`[order(sCVdata_list$res.0.4@DEvsRest$`12`$Wstat,
                                                    decreasing = TRUE), ]
rownames(clust11)[1:50]
 [1] "PAH"                                      "LOC114082496"                             "TDO2"                                     "MAT1A"                                    "GYS2"                                    
 [6] "SLCO1B3;SLCO1B3-SLCO1B7;SLCO1B7;SLCO1B1"  "FBP1"                                     "CPS1"                                     "SLC2A2"                                   "ALDOB"                                   
[11] "MTSS1"                                    "IGFBP1"                                   "CYP3A4;CYP3A7-CYP3A51P;CYP3A7-2"          "mikado.WCK01-AAH20201022-F8-rsc00143G668" "PCK1"                                    
[16] "SHMT1"                                    "CYP3A4;CYP3A7-CYP3A51P;CYP3A7"            "ARG1"                                     "CYP3A4;CYP3A7-CYP3A51P;CYP3A7-3"          "LOC107139912"                            
[21] "ALB-1"                                    "SLC38A4"                                  "LOC107139914"                             "SORBS2"                                   "TAT"                                     
[26] "C5-1"                                     "KLKB1"                                    "Slc22a19-1"                               "G6PC1"                                    "RBP4"                                    
[31] "AGMO"                                     "HSD17B11"                                 "CMBL"                                     "SLC25A13"                                 "ZBTB16"                                  
[36] "C8G"                                      "PYGL"                                     "HSD11B1"                                  "mikado.WCK01-AAH20201022-F8-rsc00060G101" "CES3"                                    
[41] "MTARC2"                                   "IDO2"                                     "AQP9"                                     "ACACB"                                    "GOT1"                                    
[46] "CFI"                                      "NR1I2"                                    "ABCB11"                                   "SOX5"                                     "BHMT2"                                   
FeaturePlot(scSeurat, features = c("PAH","PCK1"))

FeaturePlot(scSeurat, features = c("CYP2E1","FETUB"))

FeaturePlot(scSeurat, features = c("ACACB","ELOVL6"))

FeaturePlot(scSeurat, features = c("POLR2D", "ALB-1"))

Let’s look at some of the key markers that Sonya sent: IL2, IL4, IL6, IL7, IL10, IL12A, TGFB

FeaturePlot(scSeurat, features = c("IL2", "IL4"))

FeaturePlot(scSeurat, features = c("IL6", "IL6-1"))

FeaturePlot(scSeurat, features = c("IL7", "IL10"))

FeaturePlot(scSeurat, features = c("IL12A", "TGFB1"))

It’s pretty hard to see which cytokines are expressed in which samples, so I’m going to try splitting up the samples.

DimPlot(scSeurat, split.by = "tissue_type", label = TRUE) & NoLegend()
pdf(file = './figures/stimulation/downsampled_UMAP_split.pdf',
    height = 4, width = 8)
DimPlot(scSeurat, split.by = "tissue_type", label = TRUE) & NoLegend()
dev.off()
png 
  2 

Now let’s take a look at the features on this split plot.

genes <- c("IL2","IL4","IL6","IL7","IL10","IL12A","TGFB1","TGFB2","TGFB3","TNF","IL18","IL2RA","CCL5","IFNG","LIF", "CCL3L1;CCL3L3;CCL3;CCL18","CCL4L2;CCL4L1;CCL4","NFKB1","ACTB","PTPRC","CD3E","TBP","SDHA")
for (gene in genes) {
  plots <- FeaturePlot_scCustom(scSeurat, feature = gene, split.by = "tissue_type",
                     colors_use = viridis_light_high)
  plot1 <- plots[[2]] + NoLegend() + labs(title = NULL)
  plot2 <- plots[[1]] + theme(axis.line.y = element_blank(),
                   axis.ticks.y = element_blank(),
                   axis.text.y = element_blank(),
                   axis.title.y = element_blank()) +
    labs(title = NULL)
  if (gene == "CCL3L1;CCL3L3;CCL3;CCL18" | gene == "CCL4L2;CCL4L1;CCL4") {
    plot2 <- plot2 + theme(legend.title = element_blank())
  }
  print(plot1 + plot2)
  #pdf(paste("figures/stimulation/downsampled_UMAP_split_", gene, ".pdf", sep = ""),
  #    height = 4, width = 8)
  #print(plot1 + plot2)
  #dev.off()
}
Warning: All cells have the same value (0) of “IL2”

Stim vs unstim heatmap

Look at the same features on a heatmap:

# Make ordered list of genes to visualise
genes <- c("ACTB","PTPRC","CD3E","TBP","SDHA","NFKB1","CCL3L1;CCL3L3;CCL3;CCL18","CCL4L2;CCL4L1;CCL4","CCL5",
           "TNF","IFNG","IL2RA","IL2","IL4","IL6","IL7","IL10")
# Loop through clusters
for (clust in c("1","2", "5")) {
  # Isolate RNA expression and tissue type
  dat <- t(as.data.frame(scSeurat@assays$SCT@data[genes,
                                                  scSeurat$integrated_snn_res.0.4 == clust]))
  tissue_type <- as.data.frame(scSeurat$tissue_type[scSeurat$integrated_snn_res.0.4 == clust])
  colnames(tissue_type) <- "tissue_type"
  dat <- cbind(dat, tissue_type)
  # Replace specific gene names
  colnames(dat) <- gsub("CCL3L1;CCL3L3;CCL3;CCL18", "CCL3", colnames(dat))
  colnames(dat) <- gsub("CCL4L2;CCL4L1;CCL4", "CCL4", colnames(dat))
  # Find average values across tissue types
  sumDat <- dat %>% group_by(tissue_type) %>% summarise_each(funs = mean)
  sumDat <- melt(sumDat, value.name = "expression")
  # Create heatmap with ggplot
  plot <- ggplot(sumDat, aes(x = variable, y = tissue_type, fill = expression)) + 
    geom_tile() +
    scale_fill_viridis(name = "Avg Expression") +
    ggplot2::theme_minimal() +
    ggplot2::theme(axis.title.x = ggplot2::element_blank(),
                   axis.title.y = ggplot2::element_blank())
  print(plot)
  if (clust == "1") {
    cells <- "myeloid"
  } else if (clust == "2") {
    cells <- "t_cell"
  } else if (clust == "5") {
    cells <- "hepatocyte"
  }
  pdf(paste("./figures/stimulation/downsampled", cells, "key_marker_heatmap.pdf", sep = "_"),
    height = 2, width = 14)
  print(plot)
  dev.off() 
}
Warning: `summarise_each_()` was deprecated in dplyr 0.7.0.
Please use `across()` instead.Warning: The melt generic in data.table has been passed a tbl_df and will attempt to redirect to the relevant reshape2 method; please note that reshape2 is deprecated, and this redirection is now deprecated as well. To continue using melt methods from reshape2 while both libraries are attached, e.g. melt.list, you can prepend the namespace like reshape2::melt(sumDat). In the next version, this warning will become an error.Using tissue_type as id variables

DotPlot(scSeurat,
        features = genes,
        group.by = "general_cell_labels_clusts",
        split.by = "tissue_type")

        #idents = "CD3+ NK/T cells (2)")

More plots

Cluster 2 looks like it generally has more IL genes expressed. Isolate DE genes for this cluster.

clust1 <- sCVdata_list$res.0.4@DEvsRest$`2`[order(sCVdata_list$res.0.4@DEvsRest$`2`$Wstat,
                                                    decreasing = TRUE), ]
cat(rownames(clust1)[1:50])
PTPRC TOX PRKCH INPP4B mikado.WCK01-AAH20201022-F8-rsc00190G443 ARID5B IKZF3 ARHGAP15 SATB1 DOCK10 TRPS1 RASA2 SAMSN1 NSD3 MBNL1 SH3KBP1 EMB SYTL3 ICOS mikado.WCK01-AAH20201022-F8-rsc00083G981 mikado.WCK01-AAH20201022-F8-rsc00275G164 THEMIS MSI2 SLAMF1 PITPNC1 NXF2;NXF2B;NXF5 SRSF7 IKZF1 RAPGEF6 STAT4 SLC38A1 RAP1A RABGAP1L ZC3HAV1 BCL2 TESPA1 APBB1IP GIMAP7 DHX8 DDX5 UBAC2 HUWE1 CD3E CTLA4 CD44 GIMAP1 RGS1 MTHFD1L RIPOR2 TANK

Visualise these genes in violin plots.

Interpretation: Now I see that IL2 and IL4 are expressed in more than just cluster 2, but it is nearly always in PMAIO. Cluster 8 is definitely where IL6 is expressed. IL7 is a bit more spread out across treatment types, but it’s definitely present in PMAIO in clusters 4, 5, and 11. Cluster 11 is plasma cells, but I’m honestly not sure of 4 and 5 - low signal hepatocytes? IL10 is in clusters 2 and 11 PMAIO. IL12A is a bit more in 4 and 5 PMAIO.

VlnPlot(scSeurat, feature = "IL2", split.by = "tissue_type") # Only in PMAIO cluster 2

VlnPlot(scSeurat, feature = "IL4", split.by = "tissue_type") # Only in PMAIO cluster 2

VlnPlot(scSeurat, feature = "IL6", split.by = "tissue_type") # Stronger in endo and mesem PMAIO

VlnPlot(scSeurat, feature = "IL6-1", split.by = "tissue_type") # No signal

VlnPlot(scSeurat, feature = "IL7", split.by = "tissue_type") # More in PMAIO cluster 4/5

VlnPlot(scSeurat, feature = "IL10", split.by = "tissue_type") # More in PMAIO cluster 2

VlnPlot(scSeurat, feature = "IL12A", split.by = "tissue_type") # A bit more in 1,4,5

VlnPlot(scSeurat, feature = "TGFB1", split.by = "tissue_type") # Pretty even across all

VlnPlot(scSeurat, feature = "TNF", split.by = "tissue_type")

Make Violin plots with ggplot

genes <- c("IL2","IL4","IL6","IL7","IL10","IL12A","TGFB1","TGFB2","TGFB3","TNF","IL18","IL2RA","CCL5","IFNG","LIF","CCL3L1;CCL3L3;CCL3;CCL18","CCL4L2;CCL4L1;CCL4")
for(gene in genes) {
  vln_df = data.frame(gene = scSeurat[["RNA"]]@data[gene,], 
                      Cluster = Idents(scSeurat), 
                      tissue_type = scSeurat$tissue_type)
  plot <- ggplot(vln_df, aes(x = Cluster, y = gene)) + 
    geom_violin(aes(fill = tissue_type), trim=TRUE, scale = "width") +
    ylab(gene) +
    theme_bw()
  print(plot)
  pdf(file = paste("figures/stimulation/downsampled_vlnPlot_split_", gene, ".pdf", sep = ""))
  print(plot) # Need print function because R doesn't autoprint in loops
  dev.off()
}

Looking for more genes

gene <- "IL18"
vln_df = data.frame(gene = scSeurat[["RNA"]]@data[gene,], 
                      Cluster = Idents(scSeurat), 
                      tissue_type = scSeurat$tissue_type)
  plot <- ggplot(vln_df, aes(x = Cluster, y = gene)) + 
    geom_violin(aes(fill = tissue_type), trim=TRUE, scale = "width") +
    ylab(gene) +
    theme_bw()
  print(plot)

Make heatmap with select genes

genes <- c("IL2","IL4","IL6","IL7","IL10","IL12A","TGFB1","TGFB2","TGFB3","TNF","IL18","IL2RA","CCL5","IFNG","LIF","CCL3L1;CCL3L3;CCL3;CCL18","CCL4L2;CCL4L1;CCL4")
DoHeatmap(scSeurat, features = genes, group.by = "integrated_snn_res.0.4",
          size = 3, 
          angle = 90, assay = "RNA", slot = "data") +
  NoLegend() +
  theme(text = element_text(size = 7))

DotPlot(scSeurat,
        assay = "RNA",
        features = genes,
        group.by = "integrated_snn_res.0.4",
        split.by =  "tissue_type")

DotPlot(scSeurat,
        assay = "RNA",
        features = genes,
        group.by = "tissue_type")
Warning: Scaling data with a low number of groups may produce misleading results

DotPlot(scSeurat,
        assay = "RNA",
        features = genes,
        group.by = "integrated_snn_res.0.4")

Perform DE test on T-cells from PMAIO vs unstim T-cells. I see TNF, IL2RA, but I also see hepatocyte genes like ALB-1, STAT3

cat(row.names(de_results)[1:100], sep = " ")
LOC107134468 CCL4L2;CCL4L1;CCL4 mikado.WCK01-AAH20201022-F8-rsc00073G191 MTHFD1L NFKB1 NXF2;NXF2B;NXF5 CCND3 IFNG SATB1 SKAP1 ARID5B mikado.WCK01-AAH20201022-F8-rsc00334G1 CCL3L1;CCL3L3;CCL3;CCL18 SLAMF1 CD200 GIMAP7 LOC114086011-6 GBP7;GBP4 CBLB TRAF3IP3 NR4A3 ALB-1 TNFRSF9 SLC25A26 SYNE1 STAT3 UTRN HUWE1 PDE7A IL2RA PTPRCAP APOA1 TNRC6B Ifi214;Ifi209 ETS1 ANKRD44 MAPK6 PDE3B RESF1 CD27 mikado.WCK01-AAH20201022-F8-rsc00138G153 PICALM JARID2 MDN1 CHIC1 CCL3L1;CCL3L3;CCL3;CCL18-2 CKLF;CKLF-CMTM1 HECA FOXN3 MED13L SEC23B ZEB2 AMN1 CD3G SEC14L1 BATF LNPEP IRF4 ALB LOC107134769-1 IQGAP2 LOC114086011-12 SERPINA1 mikado.WCK01-AAH20201022-F8-rsc00234G885 TMEM156 STK4 ATP8A1 PECAM1 FAM13A MTHFD2 CELF2 SAMSN1 NUCB2 GIMAP1 SND1 VMP1 MLLT3 ASAP1 RBP4 TNF CRTAM FYN ACTB mikado.WCK01-AAH20201022-F8-rsc00190G443 PPP3CC HBS1L TTC27 B4GALT5 DDX5 ARHGDIB LAT CXCL2;CXCL3;CXCL1-1 ITM2B SENP7 DOCK8 RIPOR2 APBB1IP TRAF3 SAMHD1 CD99
LS0tCnRpdGxlOiAiU3RpbXVsYXRpb24gZXhwZXJpbWVudHMiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHBkZl9kb2N1bWVudDogZGVmYXVsdAotLS0KCkFuYWx5c2lzIG9mIHN0aW11bGF0aW9uIGV4cGVyaW1lbnRzLgoKYGBge3J9CmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoc2NDbHVzdFZpeikKbGlicmFyeShTZXVyYXRXcmFwcGVycykKbGlicmFyeShzY0N1c3RvbWl6ZSkKbGlicmFyeShyZXNoYXBlMikKbGlicmFyeSh2aXJpZGlzKQpgYGAKCkxvYWQgaW50ZWdyYXRlZCBvYmplY3QuIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGludGVncmF0ZWQgd2l0aCBDQ0EsIGJlY2F1c2UgdGhlcmUgd2FzIGxvdHMgb2YgYmF0Y2ggZWZmZWN0IGJldHdlZW4gdGhlIDBociB0aXNzdWUgYW5kIHRoZSBvdGhlciB0d28gZXhwZXJpbWVudHMgKHdoaWNoIG1lcmdlZCBxdWl0ZSB3ZWxsKS4KCmBgYHtyfQpsb2FkKCJ+L0Ryb3Bib3gvWm9lL3NjZl92ZXJzaW9uL2FuYWx5c2lzL2hlYWx0aHlfc2Mvc2V1cmF0X29iamVjdHMvbm9fZHJvcGxldFFDLzMzOTEvaW50ZWdyYXRlZF8zMzkxX3N0aW11bGF0aW9uX3BtYWlvX3Vuc3RpbV9kb3duc2FtcGxlZF9jY2Ffa2FuY2hvcjVfc2NDbHVzdFZpei5SRGF0YSIpCiMgU2V0IGlkZW50aXR5CklkZW50cyhzY1NldXJhdCkgPC0gImludGVncmF0ZWRfc25uX3Jlcy4wLjQiCmBgYAoKQ2hlY2sgb3V0IHRoZSBVTUFQIG9mIGNsdXN0ZXJzLCBvcmlnaW5hbCBpZGVudGl0aWVzLCBhbmQgcmVmaW5lZCBTQ0lOQSBsYWJlbHMuCgpgYGB7cn0KRGltUGxvdChzY1NldXJhdCwgbGFiZWwgPSBUUlVFKQpEaW1QbG90KHNjU2V1cmF0LCBncm91cC5ieSA9ICJ0aXNzdWVfdHlwZSIsIGxhYmVsID0gRkFMU0UpCkRpbVBsb3Qoc2NTZXVyYXQsIGdyb3VwLmJ5ID0gInNjaW5hX2xhYmVscyIsIGxhYmVsID0gVFJVRSkgJiBOb0xlZ2VuZCgpCmBgYAoKYGBge3J9CnBkZihmaWxlID0gJy4vZmlndXJlcy9zdGltdWxhdGlvbi9kb3duc2FtcGxlZF9VTUFQLnBkZicpCkRpbVBsb3Qoc2NTZXVyYXQsIGxhYmVsID0gVFJVRSkKZGV2Lm9mZigpCnBkZihmaWxlID0gJy4vZmlndXJlcy9zdGltdWxhdGlvbi9kb3duc2FtcGxlZF90aXNzdWVfdHlwZV9VTUFQLnBkZicsCiAgICBoZWlnaHQgPSA1LCB3aWR0aCA9IDcpCkRpbVBsb3Qoc2NTZXVyYXQsIGdyb3VwLmJ5ID0gInRpc3N1ZV90eXBlIikgKwogIGdndGl0bGUoTlVMTCkKZGV2Lm9mZigpCmBgYAoKQ3JlYXRlIFVNQVAgb2YgZ2VuZXJhbCBjZWxsLXR5cGUgbGFiZWxzCgpgYGB7cn0KcGxvdCA8LSBEaW1QbG90KHNjU2V1cmF0LCBncm91cC5ieSA9ICJnZW5lcmFsX2NlbGxfbGFiZWxzX2NsdXN0cyIsIGxhYmVsID0gVFJVRSwgcmVwZWwgPSBUUlVFKSArCiAgbGFicyh0aXRsZSA9IE5VTEwpICYgTm9MZWdlbmQoKQpwbG90CnBkZigiLi9maWd1cmVzL3N0aW11bGF0aW9uL2Rvd25zYW1wbGVkX2dlbmVyYWxfY2VsbF90eXBlX1VNQVAucGRmIiwKICAgIGhlaWdodCA9IDUsIHdpZHRoID0gNykKcGxvdApkZXYub2ZmKCkKYGBgCgoKTG9vayBhdCB0aXNzdWUtdHlwZSBwZXIgY2x1c3RlciBvbiBhIHByb3BvcnRpb25hbCBsZXZlbDoKCmBgYHtyfQpwdCA8LSB0YWJsZShzY1NldXJhdCRnZW5lcmFsX2NlbGxfbGFiZWxzX2NsdXN0cywgc2NTZXVyYXQkdGlzc3VlX3R5cGUpCnB0IDwtIGFzLmRhdGEuZnJhbWUocHQpCnBsb3QgPC0gZ2dwbG90KHB0LCBhZXMoeCA9IFZhcjEsIHkgPSBGcmVxLCBmaWxsID0gVmFyMikpICsKICB0aGVtZV9idyhiYXNlX3NpemUgPSAxNSkgKwogIGdlb21fY29sKHBvc2l0aW9uID0gImZpbGwiLCB3aWR0aCA9IDAuNSkgKwogIHhsYWIoIkNsdXN0ZXIiKSArCiAgeWxhYigiUHJvcG9ydGlvbiIpICsKICB0aGVtZShsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gInRvcCIpCiNwcmludChwbG90LCB2cCA9IHZpZXdwb3J0KGFuZ2xlID0gOTApKQpwbG90ICsgY29vcmRfZmxpcCgpCnBkZihmaWxlID0gJy4vZmlndXJlcy9zdGltdWxhdGlvbi9kb3duc2FtcGxlZF90aXNzdWVfdHlwZV9iYXJwbG90LnBkZicsCiAgICBoZWlnaHQgPSA1LCB3aWR0aCA9IDcpCnBsb3QgKyBjb29yZF9mbGlwKCkKZGV2Lm9mZigpCmBgYAoKQ2FsY3VsYXRlIGFsbCBERSBnZW5lcwoKYGBge3J9CmFsbC5tYXJrZXJzIDwtIEZpbmRBbGxNYXJrZXJzKHNjU2V1cmF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5LnBvcyA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi5wY3QgPSAwLjI1LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZmMudGhyZXNob2xkID0gMC4yNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JyZWN0X3VtaSA9IEZBTFNFKQp0b3AubWFya2VycyA8LSBhbGwubWFya2VycyAlPiUgZ3JvdXBfYnkoY2x1c3RlcikgJT4lIHRvcF9uKG4gPSAxMCwgd3QgPSBhdmdfbG9nMkZDKQp0b3AubWFya2Vycwp3cml0ZS50YWJsZShhbGwubWFya2VycywKICAgICAgICAgICAgZmlsZSA9ICIuL2ZpZ3VyZXMvc3RpbXVsYXRpb24vZG93bnNhbXBsZWRfY2x1c3Rlcl9tYXJrZXJzLnRzdiIsCiAgICAgICAgICAgIHNlcCA9ICJcdCIsCiAgICAgICAgICAgIHF1b3RlID0gRkFMU0UsCiAgICAgICAgICAgIHJvdy5uYW1lcyA9IEZBTFNFKQpgYGAKCkNhbGN1bGF0ZSBERSBnZW5lczogZm9yIGVhY2ggY2x1c3RlciwgY29tcGFyZSBzdGltIFZTIHVuc3RpbQoKYGBge3J9CmZvciAoY2x1c3QgaW4gbGV2ZWxzKGFzLmZhY3RvcihJZGVudHMoc2NTZXVyYXQpKSkpIHsKICBjZWxsc19zdGltIDwtIGNvbG5hbWVzKHNjU2V1cmF0KVtJZGVudHMoc2NTZXVyYXQpID09IGNsdXN0ICYgc2NTZXVyYXQkdGlzc3VlX3R5cGUgPT0gIjZocnNfUE1BSU8iXQogIGNlbGxzX3Vuc3RpbSA8LSBjb2xuYW1lcyhzY1NldXJhdClbSWRlbnRzKHNjU2V1cmF0KSA9PSBjbHVzdCAmIHNjU2V1cmF0JHRpc3N1ZV90eXBlID09ICI2aHJzX3Vuc3RpbSJdCiAgbWFya2VycyA8LSBSdW5QcmVzdG8oc2NTZXVyYXQsCiAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQuMSA9IGNlbGxzX3N0aW0sCiAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQuMiA9IGNlbGxzX3Vuc3RpbSwKICAgICAgICAgICAgICAgICAgICAgICBvbmx5LnBvcyA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgIG1pbi5wY3QgPSAwLjI1LAogICAgICAgICAgICAgICAgICAgICAgIGxvZ2ZjLnRocmVzaG9sZCA9IDAuMjUsCiAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JyZWN0X3VtaSA9IEZBTFNFKQogIHdyaXRlLnRhYmxlKG1hcmtlcnMsCiAgICAgICAgICAgICAgZmlsZSA9IHBhc3RlKCIuL2ZpZ3VyZXMvc3RpbXVsYXRpb24vZG93bnNhbXBsZWRfbWFya2Vyc19jbHVzdGVyIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsdXN0ICwiX3N0aW1fdnNfdW5zdGltLnRzdiIsIHNlcCA9ICIiKSwKICAgICAgICAgICAgICBzZXAgPSAiXHQiLAogICAgICAgICAgICAgIHF1b3RlID0gRkFMU0UsCiAgICAgICAgICAgICAgcm93Lm5hbWVzID0gVFJVRSkKfQpgYGAKCkxvb2sgZm9yIFQtY2VsbCBzaWduYXR1cmVzLgoKYGBge3J9CkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlcyA9IGMoIkNEM0UiLCAiTktHNyIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJMRUYxIiwgIlhDTDE7WENMMiIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJUT1giLCAiQ0Q4QSIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJDQ1I3IikpCmBgYAoKTG9vayBmb3IgbWFjcm9waGFnZSBzaWduYXR1cmVzOgoKYGBge3J9CkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlcyA9IGMoIkxHQUxTMSIsICJUWVJPQlAiKSkKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmVzID0gYygiTUFSQ08iLCAiQzFRQyIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJMWVotMSIsICJTMTAwQTgiKSkKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmVzID0gYygiREVGQTY7REVGQTQ7REVGQTUiLCAiQ1RTUyIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJGTFQzIiwgIlMxMDBBMTIiKSkKYGBgCgpMb29rIGZvciBCIGFuZCBwbGFzbWEgY2VsbCBzaWduYXR1cmVzCgpgYGB7cn0KRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmVzID0gYygiQ0Q3OUIiLCAiSkNIQUlOIikpCmBgYAoKCkNsdXN0ZXIgMTIgaXMgdGhlIG9ubHkgY2x1c3RlciB0aGF0IGlzIG9idmlvdXNseSBkb21pbmF0ZWQgYnkgdGhlIHVuc3RpbXVsYXRlZCBleHBlcmltZW50cy4gV2hhdCBjZWxscyBhcmUgdGhlc2U/IExvb2tzIGxpa2UgdGhleSBhcmUgaGVwYXRvY3l0ZXMuIEEgbG90IG9mIHRoZSBtYXJrZXJzIGFyZSBwZXJpcG9ydGFsLCBidXQgYWxsIGhlcGF0b2N5dGVzIGFyZSBpbiB0aGlzIGNsdXN0ZXIuCgpgYGB7cn0KIyBJc29sYXRlIERFIGdlbmVzCmNsdXN0MTEgPC0gc0NWZGF0YV9saXN0JHJlcy4wLjRAREV2c1Jlc3QkYDEyYFtvcmRlcihzQ1ZkYXRhX2xpc3QkcmVzLjAuNEBERXZzUmVzdCRgMTJgJFdzdGF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZyA9IFRSVUUpLCBdCnJvd25hbWVzKGNsdXN0MTEpWzE6NTBdCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlcyA9IGMoIlBBSCIsIlBDSzEiKSkKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmVzID0gYygiQ1lQMkUxIiwiRkVUVUIiKSkKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmVzID0gYygiQUNBQ0IiLCJFTE9WTDYiKSkKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmVzID0gYygiUE9MUjJEIiwgIkFMQi0xIikpCmBgYAoKTGV0J3MgbG9vayBhdCBzb21lIG9mIHRoZSBrZXkgbWFya2VycyB0aGF0IFNvbnlhIHNlbnQ6IElMMiwgSUw0LCBJTDYsIElMNywgSUwxMCwgSUwxMkEsIFRHRkIKCmBgYHtyfQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJJTDIiLCAiSUw0IikpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlcyA9IGMoIklMNiIsICJJTDYtMSIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJJTDciLCAiSUwxMCIpKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZXMgPSBjKCJJTDEyQSIsICJUR0ZCMSIpKQpgYGAKCkl0J3MgcHJldHR5IGhhcmQgdG8gc2VlIHdoaWNoIGN5dG9raW5lcyBhcmUgZXhwcmVzc2VkIGluIHdoaWNoIHNhbXBsZXMsIHNvIEknbSBnb2luZyB0byB0cnkgc3BsaXR0aW5nIHVwIHRoZSBzYW1wbGVzLgoKYGBge3J9CkRpbVBsb3Qoc2NTZXVyYXQsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIiwgbGFiZWwgPSBUUlVFKSAmIE5vTGVnZW5kKCkKcGRmKGZpbGUgPSAnLi9maWd1cmVzL3N0aW11bGF0aW9uL2Rvd25zYW1wbGVkX1VNQVBfc3BsaXQucGRmJywKICAgIGhlaWdodCA9IDQsIHdpZHRoID0gOCkKRGltUGxvdChzY1NldXJhdCwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiLCBsYWJlbCA9IFRSVUUpICYgTm9MZWdlbmQoKQpkZXYub2ZmKCkKYGBgCgpOb3cgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGZlYXR1cmVzIG9uIHRoaXMgc3BsaXQgcGxvdC4KCmBgYHtyfQpnZW5lcyA8LSBjKCJJTDIiLCJJTDQiLCJJTDYiLCJJTDciLCJJTDEwIiwiSUwxMkEiLCJUR0ZCMSIsIlRHRkIyIiwiVEdGQjMiLCJUTkYiLCJJTDE4IiwiSUwyUkEiLCJDQ0w1IiwiSUZORyIsIkxJRiIsICJDQ0wzTDE7Q0NMM0wzO0NDTDM7Q0NMMTgiLCJDQ0w0TDI7Q0NMNEwxO0NDTDQiLCJORktCMSIsIkFDVEIiLCJQVFBSQyIsIkNEM0UiLCJUQlAiLCJTREhBIikKZm9yIChnZW5lIGluIGdlbmVzKSB7CiAgcGxvdHMgPC0gRmVhdHVyZVBsb3Rfc2NDdXN0b20oc2NTZXVyYXQsIGZlYXR1cmUgPSBnZW5lLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIsCiAgICAgICAgICAgICAgICAgICAgIGNvbG9yc191c2UgPSB2aXJpZGlzX2xpZ2h0X2hpZ2gpCiAgcGxvdDEgPC0gcGxvdHNbWzJdXSArIE5vTGVnZW5kKCkgKyBsYWJzKHRpdGxlID0gTlVMTCkKICBwbG90MiA8LSBwbG90c1tbMV1dICsgdGhlbWUoYXhpcy5saW5lLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgICBheGlzLnRpY2tzLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgICAgICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfYmxhbmsoKSkgKwogICAgbGFicyh0aXRsZSA9IE5VTEwpCiAgaWYgKGdlbmUgPT0gIkNDTDNMMTtDQ0wzTDM7Q0NMMztDQ0wxOCIgfCBnZW5lID09ICJDQ0w0TDI7Q0NMNEwxO0NDTDQiKSB7CiAgICBwbG90MiA8LSBwbG90MiArIHRoZW1lKGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSkKICB9CiAgcHJpbnQocGxvdDEgKyBwbG90MikKICAjcGRmKHBhc3RlKCJmaWd1cmVzL3N0aW11bGF0aW9uL2Rvd25zYW1wbGVkX1VNQVBfc3BsaXRfIiwgZ2VuZSwgIi5wZGYiLCBzZXAgPSAiIiksCiAgIyAgICBoZWlnaHQgPSA0LCB3aWR0aCA9IDgpCiAgI3ByaW50KHBsb3QxICsgcGxvdDIpCiAgI2Rldi5vZmYoKQp9CmBgYAoKIyBTdGltIHZzIHVuc3RpbSBoZWF0bWFwCgpMb29rIGF0IHRoZSBzYW1lIGZlYXR1cmVzIG9uIGEgaGVhdG1hcDoKCmBgYHtyfQojIE1ha2Ugb3JkZXJlZCBsaXN0IG9mIGdlbmVzIHRvIHZpc3VhbGlzZQpnZW5lcyA8LSBjKCJBQ1RCIiwiUFRQUkMiLCJDRDNFIiwiVEJQIiwiU0RIQSIsIk5GS0IxIiwiQ0NMM0wxO0NDTDNMMztDQ0wzO0NDTDE4IiwiQ0NMNEwyO0NDTDRMMTtDQ0w0IiwiQ0NMNSIsCiAgICAgICAgICAgIlRORiIsIklGTkciLCJJTDJSQSIsIklMMiIsIklMNCIsIklMNiIsIklMNyIsIklMMTAiKQojIExvb3AgdGhyb3VnaCBjbHVzdGVycwpmb3IgKGNsdXN0IGluIGMoIjEiLCIyIiwgIjUiKSkgewogICMgSXNvbGF0ZSBSTkEgZXhwcmVzc2lvbiBhbmQgdGlzc3VlIHR5cGUKICBkYXQgPC0gdChhcy5kYXRhLmZyYW1lKHNjU2V1cmF0QGFzc2F5cyRTQ1RAZGF0YVtnZW5lcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY1NldXJhdCRpbnRlZ3JhdGVkX3Nubl9yZXMuMC40ID09IGNsdXN0XSkpCiAgdGlzc3VlX3R5cGUgPC0gYXMuZGF0YS5mcmFtZShzY1NldXJhdCR0aXNzdWVfdHlwZVtzY1NldXJhdCRpbnRlZ3JhdGVkX3Nubl9yZXMuMC40ID09IGNsdXN0XSkKICBjb2xuYW1lcyh0aXNzdWVfdHlwZSkgPC0gInRpc3N1ZV90eXBlIgogIGRhdCA8LSBjYmluZChkYXQsIHRpc3N1ZV90eXBlKQogICMgUmVwbGFjZSBzcGVjaWZpYyBnZW5lIG5hbWVzCiAgY29sbmFtZXMoZGF0KSA8LSBnc3ViKCJDQ0wzTDE7Q0NMM0wzO0NDTDM7Q0NMMTgiLCAiQ0NMMyIsIGNvbG5hbWVzKGRhdCkpCiAgY29sbmFtZXMoZGF0KSA8LSBnc3ViKCJDQ0w0TDI7Q0NMNEwxO0NDTDQiLCAiQ0NMNCIsIGNvbG5hbWVzKGRhdCkpCiAgIyBGaW5kIGF2ZXJhZ2UgdmFsdWVzIGFjcm9zcyB0aXNzdWUgdHlwZXMKICBzdW1EYXQgPC0gZGF0ICU+JSBncm91cF9ieSh0aXNzdWVfdHlwZSkgJT4lIHN1bW1hcmlzZV9lYWNoKGZ1bnMgPSBtZWFuKQogIHN1bURhdCA8LSBtZWx0KHN1bURhdCwgdmFsdWUubmFtZSA9ICJleHByZXNzaW9uIikKICAjIENyZWF0ZSBoZWF0bWFwIHdpdGggZ2dwbG90CiAgcGxvdCA8LSBnZ3Bsb3Qoc3VtRGF0LCBhZXMoeCA9IHZhcmlhYmxlLCB5ID0gdGlzc3VlX3R5cGUsIGZpbGwgPSBleHByZXNzaW9uKSkgKyAKICAgIGdlb21fdGlsZSgpICsKICAgIHNjYWxlX2ZpbGxfdmlyaWRpcyhuYW1lID0gIkF2ZyBFeHByZXNzaW9uIikgKwogICAgZ2dwbG90Mjo6dGhlbWVfbWluaW1hbCgpICsKICAgIGdncGxvdDI6OnRoZW1lKGF4aXMudGl0bGUueCA9IGdncGxvdDI6OmVsZW1lbnRfYmxhbmsoKSwKICAgICAgICAgICAgICAgICAgIGF4aXMudGl0bGUueSA9IGdncGxvdDI6OmVsZW1lbnRfYmxhbmsoKSkKICBwcmludChwbG90KQogIGlmIChjbHVzdCA9PSAiMSIpIHsKICAgIGNlbGxzIDwtICJteWVsb2lkIgogIH0gZWxzZSBpZiAoY2x1c3QgPT0gIjIiKSB7CiAgICBjZWxscyA8LSAidF9jZWxsIgogIH0gZWxzZSBpZiAoY2x1c3QgPT0gIjUiKSB7CiAgICBjZWxscyA8LSAiaGVwYXRvY3l0ZSIKICB9CiAgcGRmKHBhc3RlKCIuL2ZpZ3VyZXMvc3RpbXVsYXRpb24vZG93bnNhbXBsZWQiLCBjZWxscywgImtleV9tYXJrZXJfaGVhdG1hcC5wZGYiLCBzZXAgPSAiXyIpLAogICAgaGVpZ2h0ID0gMiwgd2lkdGggPSAxNCkKICBwcmludChwbG90KQogIGRldi5vZmYoKSAKfQpgYGAKCmBgYHtyfQpEb3RQbG90KHNjU2V1cmF0LAogICAgICAgIGZlYXR1cmVzID0gZ2VuZXMsCiAgICAgICAgZ3JvdXAuYnkgPSAiZ2VuZXJhbF9jZWxsX2xhYmVsc19jbHVzdHMiLAogICAgICAgIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKICAgICAgICAjaWRlbnRzID0gIkNEMysgTksvVCBjZWxscyAoMikiKQpgYGAKCgoKTW9yZSBwbG90cwoKYGBge3J9CkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTUiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTYiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTdCIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDZTVCIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUwzMVJBIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDdSIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDdSLTEiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTdEIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDVSQSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikgCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTdSRSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikgCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTdSQyIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUwxN0MiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMzQiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMNEkxIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDExIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDlSIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDRSIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDIxUiIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUwyNyIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUxLIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDE4QlAiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTBSQSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUwzIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJDU0YyIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJRk5LIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDkiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTMiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIk9TTSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiTElGIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJTVEFUMSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiU1RBVDQiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMNCIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUw0STEiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIkNENjkiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIlRMUjciLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIkhMQS1EUkEiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIklMMTJBIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJUTFIyIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKQpGZWF0dXJlUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJORktCMSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiQUNUQiIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiUFRQUkMiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIkNEM0UiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCkZlYXR1cmVQbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIlRCUCIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKRmVhdHVyZVBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiU0RIQSIsIHNwbGl0LmJ5ID0gInRpc3N1ZV90eXBlIikKYGBgCgoKQ2x1c3RlciAyIGxvb2tzIGxpa2UgaXQgZ2VuZXJhbGx5IGhhcyBtb3JlIElMIGdlbmVzIGV4cHJlc3NlZC4gSXNvbGF0ZSBERSBnZW5lcyBmb3IgdGhpcyBjbHVzdGVyLgoKYGBge3J9CmNsdXN0MSA8LSBzQ1ZkYXRhX2xpc3QkcmVzLjAuNEBERXZzUmVzdCRgMmBbb3JkZXIoc0NWZGF0YV9saXN0JHJlcy4wLjRAREV2c1Jlc3QkYDJgJFdzdGF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZyA9IFRSVUUpLCBdCmNhdChyb3duYW1lcyhjbHVzdDEpWzE6NTBdKQpgYGAKClZpc3VhbGlzZSB0aGVzZSBnZW5lcyBpbiB2aW9saW4gcGxvdHMuCgoqKkludGVycHJldGF0aW9uKio6IE5vdyBJIHNlZSB0aGF0IElMMiBhbmQgSUw0IGFyZSBleHByZXNzZWQgaW4gbW9yZSB0aGFuIGp1c3QgY2x1c3RlciAyLCBidXQgaXQgaXMgbmVhcmx5IGFsd2F5cyBpbiBQTUFJTy4gQ2x1c3RlciA4IGlzIGRlZmluaXRlbHkgd2hlcmUgSUw2IGlzIGV4cHJlc3NlZC4gSUw3IGlzIGEgYml0IG1vcmUgc3ByZWFkIG91dCBhY3Jvc3MgdHJlYXRtZW50IHR5cGVzLCBidXQgaXQncyBkZWZpbml0ZWx5IHByZXNlbnQgaW4gUE1BSU8gaW4gY2x1c3RlcnMgNCwgNSwgYW5kIDExLiBDbHVzdGVyIDExIGlzIHBsYXNtYSBjZWxscywgYnV0IEknbSBob25lc3RseSBub3Qgc3VyZSBvZiA0IGFuZCA1IC0gbG93IHNpZ25hbCBoZXBhdG9jeXRlcz8gSUwxMCBpcyBpbiBjbHVzdGVycyAyIGFuZCAxMSBQTUFJTy4gSUwxMkEgaXMgYSBiaXQgbW9yZSBpbiA0IGFuZCA1IFBNQUlPLgoKYGBge3J9ClZsblBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUwyIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKSAjIE9ubHkgaW4gUE1BSU8gY2x1c3RlciAyClZsblBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUw0Iiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKSAjIE9ubHkgaW4gUE1BSU8gY2x1c3RlciAyClZsblBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUw2Iiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKSAjIFN0cm9uZ2VyIGluIGVuZG8gYW5kIG1lc2VtIFBNQUlPClZsblBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUw2LTEiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpICMgTm8gc2lnbmFsClZsblBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUw3Iiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKSAjIE1vcmUgaW4gUE1BSU8gY2x1c3RlciA0LzUKVmxuUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJJTDEwIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKSAjIE1vcmUgaW4gUE1BSU8gY2x1c3RlciAyClZsblBsb3Qoc2NTZXVyYXQsIGZlYXR1cmUgPSAiSUwxMkEiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpICMgQSBiaXQgbW9yZSBpbiAxLDQsNQpWbG5QbG90KHNjU2V1cmF0LCBmZWF0dXJlID0gIlRHRkIxIiwgc3BsaXQuYnkgPSAidGlzc3VlX3R5cGUiKSAjIFByZXR0eSBldmVuIGFjcm9zcyBhbGwKVmxuUGxvdChzY1NldXJhdCwgZmVhdHVyZSA9ICJUTkYiLCBzcGxpdC5ieSA9ICJ0aXNzdWVfdHlwZSIpCmBgYAoKTWFrZSBWaW9saW4gcGxvdHMgd2l0aCBnZ3Bsb3QKCmBgYHtyfQpnZW5lcyA8LSBjKCJJTDIiLCJJTDQiLCJJTDYiLCJJTDciLCJJTDEwIiwiSUwxMkEiLCJUR0ZCMSIsIlRHRkIyIiwiVEdGQjMiLCJUTkYiLCJJTDE4IiwiSUwyUkEiLCJDQ0w1IiwiSUZORyIsIkxJRiIsIkNDTDNMMTtDQ0wzTDM7Q0NMMztDQ0wxOCIsIkNDTDRMMjtDQ0w0TDE7Q0NMNCIpCmZvcihnZW5lIGluIGdlbmVzKSB7CiAgdmxuX2RmID0gZGF0YS5mcmFtZShnZW5lID0gc2NTZXVyYXRbWyJSTkEiXV1AZGF0YVtnZW5lLF0sIAogICAgICAgICAgICAgICAgICAgICAgQ2x1c3RlciA9IElkZW50cyhzY1NldXJhdCksIAogICAgICAgICAgICAgICAgICAgICAgdGlzc3VlX3R5cGUgPSBzY1NldXJhdCR0aXNzdWVfdHlwZSkKICBwbG90IDwtIGdncGxvdCh2bG5fZGYsIGFlcyh4ID0gQ2x1c3RlciwgeSA9IGdlbmUpKSArIAogICAgZ2VvbV92aW9saW4oYWVzKGZpbGwgPSB0aXNzdWVfdHlwZSksIHRyaW09VFJVRSwgc2NhbGUgPSAid2lkdGgiKSArCiAgICB5bGFiKGdlbmUpICsKICAgIHRoZW1lX2J3KCkKICBwcmludChwbG90KQogIHBkZihmaWxlID0gcGFzdGUoImZpZ3VyZXMvc3RpbXVsYXRpb24vZG93bnNhbXBsZWRfdmxuUGxvdF9zcGxpdF8iLCBnZW5lLCAiLnBkZiIsIHNlcCA9ICIiKSkKICBwcmludChwbG90KSAjIE5lZWQgcHJpbnQgZnVuY3Rpb24gYmVjYXVzZSBSIGRvZXNuJ3QgYXV0b3ByaW50IGluIGxvb3BzCiAgZGV2Lm9mZigpCn0KYGBgCgpMb29raW5nIGZvciBtb3JlIGdlbmVzCgpgYGB7cn0KZ2VuZSA8LSAiSUwxOCIKdmxuX2RmID0gZGF0YS5mcmFtZShnZW5lID0gc2NTZXVyYXRbWyJSTkEiXV1AZGF0YVtnZW5lLF0sIAogICAgICAgICAgICAgICAgICAgIENsdXN0ZXIgPSBJZGVudHMoc2NTZXVyYXQpLCAKICAgICAgICAgICAgICAgICAgICB0aXNzdWVfdHlwZSA9IHNjU2V1cmF0JHRpc3N1ZV90eXBlKQpwbG90IDwtIGdncGxvdCh2bG5fZGYsIGFlcyh4ID0gQ2x1c3RlciwgeSA9IGdlbmUpKSArIAogIGdlb21fdmlvbGluKGFlcyhmaWxsID0gdGlzc3VlX3R5cGUpLCB0cmltPVRSVUUsIHNjYWxlID0gIndpZHRoIikgKwogIHlsYWIoZ2VuZSkgKwogIHRoZW1lX2J3KCkKcHJpbnQocGxvdCkKYGBgCgpNYWtlIGhlYXRtYXAgd2l0aCBzZWxlY3QgZ2VuZXMKCmBgYHtyfQpnZW5lcyA8LSBjKCJJTDIiLCJJTDQiLCJJTDYiLCJJTDciLCJJTDEwIiwiSUwxMkEiLCJUR0ZCMSIsIlRHRkIyIiwiVEdGQjMiLCJUTkYiLCJJTDE4IiwiSUwyUkEiLCJDQ0w1IiwiSUZORyIsIkxJRiIsIkNDTDNMMTtDQ0wzTDM7Q0NMMztDQ0wxOCIsIkNDTDRMMjtDQ0w0TDE7Q0NMNCIpCkRvSGVhdG1hcChzY1NldXJhdCwgZmVhdHVyZXMgPSBnZW5lcywgZ3JvdXAuYnkgPSAiaW50ZWdyYXRlZF9zbm5fcmVzLjAuNCIsCiAgICAgICAgICBzaXplID0gMywgCiAgICAgICAgICBhbmdsZSA9IDkwLCBhc3NheSA9ICJSTkEiLCBzbG90ID0gImRhdGEiKSArCiAgTm9MZWdlbmQoKSArCiAgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gNykpCkRvdFBsb3Qoc2NTZXVyYXQsCiAgICAgICAgYXNzYXkgPSAiUk5BIiwKICAgICAgICBmZWF0dXJlcyA9IGdlbmVzLAogICAgICAgIGdyb3VwLmJ5ID0gImludGVncmF0ZWRfc25uX3Jlcy4wLjQiLAogICAgICAgIHNwbGl0LmJ5ID0gICJ0aXNzdWVfdHlwZSIpCkRvdFBsb3Qoc2NTZXVyYXQsCiAgICAgICAgYXNzYXkgPSAiUk5BIiwKICAgICAgICBmZWF0dXJlcyA9IGdlbmVzLAogICAgICAgIGdyb3VwLmJ5ID0gInRpc3N1ZV90eXBlIikKRG90UGxvdChzY1NldXJhdCwKICAgICAgICBhc3NheSA9ICJSTkEiLAogICAgICAgIGZlYXR1cmVzID0gZ2VuZXMsCiAgICAgICAgZ3JvdXAuYnkgPSAiaW50ZWdyYXRlZF9zbm5fcmVzLjAuNCIpCmBgYAoKClBlcmZvcm0gREUgdGVzdCBvbiBULWNlbGxzIGZyb20gUE1BSU8gdnMgdW5zdGltIFQtY2VsbHMuIEkgc2VlICpUTkYsIElMMlJBKiwgYnV0IEkgYWxzbyBzZWUgaGVwYXRvY3l0ZSBnZW5lcyBsaWtlICpBTEItMSwgU1RBVDMqCgpgYGB7cn0KIyBGZXRjaCBjZWxscyB0byBmaW5kIG91dCByZWxldmFudCBjZWxsIGJhcmNvZGVzCmJhcmNvZGVfZGYgPC0gRmV0Y2hEYXRhKHNjU2V1cmF0LCB2YXJzID0gYygidGlzc3VlX3R5cGUiLCAiaW50ZWdyYXRlZF9zbm5fcmVzLjAuNCIpKQpiYXJjb2RlX2RmJGJhcmNvZGUgPC0gcm93bmFtZXMoYmFyY29kZV9kZikKIyBGaWx0ZXIgb24gZGF0YSBzdWJzZXRzIGFuZCBwdWxsIGJhcmNvZGUgbmFtZXMKY2VsbHMxIDwtIGJhcmNvZGVfZGYgJT4lCiAgZmlsdGVyKHRpc3N1ZV90eXBlID09ICI2aHJzX1BNQUlPIikgJT4lCiAgZmlsdGVyKGludGVncmF0ZWRfc25uX3Jlcy4wLjQgJWluJSBjKDIsNikpICU+JQogIHB1bGwoYmFyY29kZSkKY2VsbHMyIDwtIGJhcmNvZGVfZGYgJT4lCiAgZmlsdGVyKHRpc3N1ZV90eXBlID09ICI2aHJzX3Vuc3RpbSIpICU+JQogIGZpbHRlcihpbnRlZ3JhdGVkX3Nubl9yZXMuMC40ICVpbiUgYygyLDYpKSAlPiUKICBwdWxsKGJhcmNvZGUpCiMgUHJlcCBmb3IgREUgdGVzdGluZwpzY1NldXJhdCA8LSBQcmVwU0NURmluZE1hcmtlcnMoc2NTZXVyYXQpCiMgUGVyZm9ybSBERSB0ZXN0CmRlX3Jlc3VsdHMgPC0gRmluZE1hcmtlcnMoc2NTZXVyYXQsCiAgICAgICAgICAgIGlkZW50LjEgPSBjZWxsczEsCiAgICAgICAgICAgIGlkZW50LjIgPSBjZWxsczIpCmNhdChyb3cubmFtZXMoZGVfcmVzdWx0cylbMToxMDBdLCBzZXAgPSAiICIpCmBgYAoKCg==